/*
 *十进制转换二进制
 *
 */

#include<stdio.h>


int main() {
	int i = 0;
	int num = 0;
	const int max = 128;			//max表示最大的二进制位数,也就是能转换成二进制数的十进制数的最大值.
	int a[max];        //
	for (int j = 0; j < max; j++) {
		a[j] = 0;
	}
	printf("输入一个十进制整数\n");
	scanf("%d", &num);

	for (i = 0; num > 0; i++) {
		a[i] = num % 2;
		num = num / 2;
	}
	printf("二进制数是:");

	//找到第一个非0的数组
	int is_zero;
	for (is_zero = max; is_zero >= 0; is_zero--) {
		if (a[is_zero] == 1) {
			break;
		}
	}

	for (;is_zero >= 0; is_zero--) {
		printf("%d", a[is_zero]);
	}
	printf("\n");
	return 0;
}


/*
int main() {
	int t = 0, num = 0;
	printf("输入一个十进制整数\n");
	scanf("%d", &num);
	printf("二进制数是:");
	for (int i = 0; i <16; i++) {
		t = 16 -i;
		printf("%16d\r", num % 2);		//%nd中,n必须是整数,不能是变量或公式.
		num = num / 2;
	}
	printf("\n");
	return 0;
}
*/
